home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / LIBRARY / PASCALL / TEMPJUNK / FERNSCOL.PAS < prev    next >
Pascal/Delphi Source File  |  1992-10-05  |  2KB  |  84 lines

  1. program payroll;
  2.         {sample ineractive processing program}
  3. uses
  4.      crt;
  5. const
  6.      tax=25.00;
  7.      stringsize=20;
  8.      blank=' ';
  9. type
  10.      fnmesz=packed array [1..stringsize] of char;
  11.  
  12. function gross(hours:integer;rate:real):real;
  13. begin
  14.      gross:=hours*rate;
  15. end;
  16.  
  17. function net(gross,tax:real):real;
  18. begin
  19.      net:=gross-tax;
  20. end;
  21.  
  22. procedure preset(var myfile:text; filename:fnmesz);
  23. begin
  24.      assign(myfile,filename);
  25.      reset(myfile);
  26.      clrscr;
  27. end;
  28.  
  29. procedure input(var myfile:text;var hours:integer;var rate:real);
  30. begin
  31.      readln(myfile,hours);
  32.      readln(myfile,rate);
  33. end;
  34.  
  35. function inputvalid(hours:integer;rate:real):boolean;
  36. begin
  37.           if (hours>40) and (hours<20) then inputvalid:=false;
  38.           if (rate>50) and (rate<1) then inputvalid:=false;
  39. end;
  40.  
  41. procedure output(emp,hours:integer;rate:real);
  42. begin
  43.           if (inputvalid(hours,rate)) then
  44.           begin
  45.                writeln;
  46.                writeln('Employee #',emp);
  47.                writeln('  Hours worked are ',hours);
  48.                writeln('  Hourly rate is $',rate:5:2);
  49.                writeln('  Gross pay is $',gross(hours,rate):7:2);
  50.                writeln('  Net pay is $',net(gross(hours,rate),tax):7:2);
  51.           end
  52.           else begin
  53.                writeln;
  54.                writeln('Employee #',emp);
  55.                writeln(' HAS A RECORD INVALID ACCORDING TO COMPANY RULES');
  56.                writeln('                   PLEASE CHECK');
  57.           end;
  58.           readln;
  59.           clrscr;
  60. end;
  61.  
  62. procedure go;
  63. var
  64.      hours, emp:integer;
  65.      rate : real;
  66.      fnme:fnmesz;
  67.      myfile:text;
  68. begin
  69.      fnme:='a:\set.pas          ';
  70.      preset(myfile,fnme);
  71.      emp:=0;
  72.      while not eof(myfile) do
  73.      begin
  74.           emp:=emp+1;
  75.           input(myfile,hours,rate);
  76.           output(emp,hours,rate);
  77.      end;
  78.      close(myfile);
  79. end;
  80.  
  81.  
  82. begin
  83.      go;
  84. end.